Функции
Функции, реализованные в СУБД ЛИНТЕР, предназначены для работы со значениями столбцов и/или произвольными выражениями. Они допустимы в любых операторах SQL в тех местах, где синтаксическая конструкция позволяет использовать выражение.
Все функции SQL можно разделить на две группы:
-
встроенные функции;
-
пользовательские функции.
Встроенные функции являются неотъемлемой частью транслятора языка SQL СУБД ЛИНТЕР и не зависят от конкретного экземпляра БД. Приложение, использующее только встроенные функции, является переносимым приложением.
В качестве пользовательских функций в СУБД ЛИНТЕР выступают хранимые процедуры, возвращающие скалярное значение (не массив значений). Скалярная функция всегда возвращает одно значение. Результатом вызова пользовательской функции без аргументов является константа.
Описания пользовательских функций хранятся непосредственно в БД, поэтому обращение к ним возможно только в конкретном экземпляре БД. При переносе приложения, содержащего пользовательские функции, на другую БД, все используемые функции должны быть экспортированы в эту БД. Приложение, использующее пользовательские функции, уже не является переносимым приложением (переносимое приложение должно быть самонастраивающимся, т.е. проверять наличие требуемых функций и при их отсутствии самостоятельно создавать их в БД).
Механизм пользовательских функций позволяет разработчикам приложений расширять стандартный набор встроенных функций с учетом специфики приложений. Использование пользовательских функций повышает производительность клиент-серверных приложений за счет переноса обработки данных непосредственно на сервер БД и уменьшения сетевого трафика. Это является более эффективным решением, чем загрузка из БД всех необходимых для обработки строк таблицы и последующее выполнение расчетов на клиентской машине.
Разработанный набор пользовательских функций для некоторой предметной области позволяет разработчикам приложений в этой предметной области повышать качество разработки за счет использования готовых решений. В данном случае приложения приближаются к объектно-ориентированному виду.
Спецификация пользовательской функции включает:
-
имя схемы;
-
имя функции;
-
список входных параметров и их тип.
В БД может быть несколько функций с одинаковым именем, но созданных в разных схемах. Если при вызове имя схемы явно не указано, то вызывается функция с схемы соответствующей имени владельца, под которым выполняется приложение.
Функция идентифицируется ее схемой, именем функции, количеством и типом параметров. Это называется прототипом функции. Уникальной в экземпляре БД должна быть комбинация < имя схемы >
+ < имя функции >
.
- Символьные функции
- Математические функции
- Функции обработки списков
- Функции преобразования
- Функции бесформатного преобразования
- Функции для работы с BLOB-данными
- Функции для работы с типом DATE
- Работа с часовыми поясами
- Функции для работы с IP-адресами
- Функции для работы с MAC-адресами
- Прочие функции